#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct my_sort
{
    bool operator()(pair<int, int> v1, pair<int, int> v2)
    {
        if (v1.second == v2.second)
        {
            return v2.first > v1.first;
        }
        return v1.second > v2.second;
    }
};

int main() {
    int a, b;
    cin >> a >> b;
    vector<pair<int, int>> ret(a);
    for (int i = 0; i < a; i++)
    {
        cin >> ret[i].first;
    }
    for (int i = 0; i < a; i++)
    {
        cin >> ret[i].second;
    }
    sort(ret.begin(), ret.end(), my_sort());
    long long pr = 0;
    long long sr = 0;
    for (int i = 0; i < b; i++)
    {
        pr += ret[i].first;
        sr += ret[i].second;
    }
    cout << pr << " " << sr << endl;
    return 0;
}
void insert(vector<int>& vt, int n)
{
    for (int i = 0; i < n; i++)
    {
        cin >> vt[i];
    }
}

void sum(vector<int>& vt, vector<int>& ret, int k, int n)
{
    for (int i = 0; i < k; i++)
    {
        ret[0] += vt[i];
    }
    for (int i = 1; i < n; i++)
    {
        ret[i] = ret[i - 1] - vt[i - 1];
        if (i + k >= n)
        {
            continue;
        }
        else
        {
            ret[i] += vt[i + k - 1];
        }
    }
}

int main() {
    int n, k;
    cin >> n >> k;
    vector<int> happy(n);
    vector<int> set(n);
    insert(happy, n);
    insert(set, n);
    if (k > n)
    {
        cout << 1 << endl;
    }
    else
    {
        vector<int> happy_sum(n);
        vector<int> set_sum(n);
        sum(happy, happy_sum, k, n);
        sum(set, set_sum, k, n);
        int my_happy = 0;
        int my_set = 0;
        int hs = 0;
        for (int i = 0; i < n; i++)
        {
            if (happy_sum[i] > my_happy)
            {
                my_happy = happy_sum[i];
                my_set = set_sum[i];
                hs = i + 1;
            }
            else if (happy_sum[i] == my_happy && set_sum[i] < my_set)
            {
                my_happy = happy_sum[i];
                my_set = set_sum[i];
                hs = i + 1;
            }
        }
        cout << hs << endl;
    }
    return 0;
}
//int main() {
//    int a, b;
//    cin >> a >> b;
//    vector<vector<int>> board(a, vector<int>(b));
//    for (int i = 0; i < a; i++)
//    {
//        for (int j = 0; j < b; j++)
//        {
//            cin >> board[i][j];
//        }
//    }
//    vector<long long> ret1(a);
//    vector<long long> ret2(b);
//    for (int i = 0; i < a; i++)
//    {
//        long long sum = 0;
//        for (int j = 0; j < b; j++)
//        {
//            sum += board[i][j];
//        }
//        ret1[i] = sum;
//    }
//    for (int i = 0; i < b; i++)
//    {
//        long long sum = 0;
//        for (int j = 0; j < a; j++)
//        {
//            sum += board[j][i];
//        }
//        ret2[i] = sum;
//    }
//    vector<vector<long long>> ret(a, vector<long long>(b));
//    for (int i = 0; i < a; i++)
//    {
//        for (int j = 0; j < b; j++)
//        {
//            ret[i][j] = ret1[i] + ret2[j] - board[i][j];
//        }
//    }
//    for (int i = 0; i < a; i++)
//    {
//        for (int j = 0; j < b; j++)
//        {
//            cout << ret[i][j] << " ";
//        }
//        cout << endl;
//    }
//    return 0;
//}
//
//int main() {
//    int num;
//    cin >> num;
//    int ret = 0;
//    while (num)
//    {
//        int p = num % 10;
//        if (p % 2 == 0)
//        {
//            ret = ret * 10 + 0;
//        }
//        else
//        {
//            ret += ret * 10 + 1;
//        }
//        num /= 10;
//    }
//    int pre = 0;
//    while (ret)
//    {
//        pre = ret % 10 + pre * 10;
//        ret /= 10;
//    }
//    cout << pre << endl;
//    return 0;
//}

//
//int main() {
//    string str;
//    cin >> str;
//    int n = str.size();
//    for (int i = 0; i < n; i++)
//    {
//        if (str[i] % 2 == 0)
//        {
//            str[i] = '0';
//        }
//        else
//        {
//            str[i] = '1';
//        }
//    }
//    cout << stoi(str) << endl;
//    return 0;
//}

#include <algorithm>
class Solution {
public:
    string compressString(string param) {
        // write code here
        string str;
        int n = param.size();
        int i = 0;
        while (i < n)
        {
            int k = 1;
            while (i + 1 < n && param[i] == param[i + 1])
            {
                k++;
                i++;
            }
            str += param[i];
            if (k > 1)
            {
                string p;
                while (k)
                {
                    p += (k % 10 + '0');
                    k /= 10;
                }
                reverse(p.begin(), p.end());
                str += p;
            }
            i++;
        }
        return str;
    }
};

class Solution {
public:
    int dp[1001] = { 0 };
    int knapsack(int V, int n, vector<vector<int> >& vw) {
        // write code here
        for (int i = 0; i < n; i++)
        {
            for (int j = V; j >= vw[i][0]; j--)
            {
                dp[j] = max(dp[j], dp[j - vw[i][0]] + vw[i][1]);
            }
        }
        return dp[V];
    }
};